package com.entity.taskorder;

import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

/**
 * 确认单主表实体类
 */
@ApiModel("确认单主表实体")
@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName("confirmation_orders") // 映射到数据库表名
public class ConfirmationOrder {
    /**
     * 主键ID
     */
    @ApiModelProperty(value = "主键ID")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 任务单编号（唯一标识）
     */
    @ApiModelProperty(value = "任务单编号（唯一标识）")
    @TableField("task_order_number")
    private String taskOrderNumber;

    /**
     * 任务单id
     */
    @ApiModelProperty(value = "任务单id")
    @TableField("task_order_id")
    private Long taskOrderId;

    /**
     * 用户公司ID（逻辑外键，关联用户公司表）
     */
    @ApiModelProperty(value = "用户公司ID（逻辑外键，关联用户公司表）")
    @TableField("customer_company_id")
    private Long customerCompanyId;

    /**
     * 服务地址
     */
    @ApiModelProperty(value = "地址")
    @TableField("address")
    private String address;

    /**
     * 联系人ID（逻辑外键，关联联系人表）
     */
    @ApiModelProperty(value = "联系人ID（逻辑外键，关联联系人表）")
    @TableField("contact_person_id")
    private Long contactPersonId;

    /**
     * 产品购买日期
     */
    @ApiModelProperty(value = "产品购买日期")
    @TableField("product_purchase_date")
    private String productPurchaseDate;

    /**
     * 故障现象
     */
    @ApiModelProperty(value = "故障现象")
    @TableField("fault_description")
    private String faultDescription;

    /**
     * 故障原因及处理办法
     */
    @ApiModelProperty(value = "故障原因及处理办法")
    @TableField("fault_reason_and_solution")
    private String faultReasonAndSolution;

    /**
     * 余留问题
     */
    @ApiModelProperty(value = "余留问题")
    @TableField("remaining_issues")
    private String remainingIssues;

    /**
     * 用户确认（签字或备注）
     */
    @ApiModelProperty(value = "用户确认（签字或备注）")
    @TableField("user_confirmation")
    private String userConfirmation;

    /**
     * 销售人员确认（签字或备注）
     */
    @ApiModelProperty(value = "销售人员确认（签字或备注）")
    @TableField("salesman_confirmation")
    private String salesmanConfirmation;

    /**
     * 总指挥意见
     */
    @ApiModelProperty(value = "总指挥意见")
    @TableField("commander_opinion")
    private String commanderOpinion;

    /**
     * 填表人
     */
    @ApiModelProperty(value = "填表人")
    @TableField("filler")
    private String filler;

    /**
     * 填表时间，默认为当前时间
     */
    @ApiModelProperty(value = "填表时间，默认为当前时间")
    @TableField(value = "fill_time", fill = FieldFill.INSERT)
    private String fillTime;

    /**
     * 是否删除（0-未删除，1-已删除）
     */
    @ApiModelProperty(value = "是否删除（0-未删除，1-已删除）")
    @TableField("is_deleted")
    private Integer isDeleted;

    /**
     * 状态（待确认/已确认/进行中/已完成）
     */
    @ApiModelProperty(value = "状态（待确认/已确认/进行中/已完成）")
    @TableField("status")
    private String status;

    /**
     * 更新时间，每次更新时自动刷新
     */
    @ApiModelProperty(value = "更新时间，每次更新时自动刷新")
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;

    /**
     * 图片路径
     */
    @ApiModelProperty(value = "图片路径")
    @TableField("images_url")
    private String imagesUrl;

}
